package ynu.elm.service;

import ynu.elm.entity.User;

public interface UserService {

    /**
     * 用户登录
     * @param username 用户名
     * @param password 明文密码
     * @return 用户对象，登录失败返回null
     */
    User login(String username, String password);

    /**
     * 用户注册
     * @param username 用户名
     * @param password 明文密码
     * @return 注册结果：1-成功，0-用户名已存在，-1-其他错误
     */
    int register(String username, String password);

    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 用户对象
     */
    User getUserByUsername(String username);

    /**
     * 验证密码
     * @param rawPassword 明文密码
     * @param encodedPassword 加密密码
     * @return 是否匹配
     */
    boolean verifyPassword(String rawPassword, String encodedPassword);

    /**
     * 加密密码
     * @param rawPassword 明文密码
     * @return 加密后的密码
     */
    String encodePassword(String rawPassword);
}